Robot device, robot control method, program, and recording medium

ABSTRACT

A joint torque computing unit computes a joint torque T 1  of a joint necessary to move a joint angle to a target joint angle. A summing unit obtains a sum value U 1  indicating the sum of generated forces generated at actuators, from a target stiffness. A setting unit sets a restricting coefficient h 1  to a value greater than 1 when performing non-antagonistic driving, and to 1 when performing antagonistic driving. A restricting unit takes |T 1 |&lt;U 1 ×r×h 1  as restricting condition where r is moment arm radius, and restricts the joint torque T 1  to a range satisfying the conditions. A generated force computing unit computes the generated force of the actuators based on the restricted joint torque T 1 . The setting unit sets the restricting coefficient h 1  to gradually near 1 when switching from non-antagonistic driving to antagonistic driving.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 14/251,499 filed Apr. 11, 2014, which claims the benefit of Japanese Patent Application No. 2013-088442, filed Apr. 19, 2013, all of which are hereby incorporated by reference herein in their entireties.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a robot device having a control unit to control a pair of actuators for rotational driving of a link, a robot control method, a program, and a recording medium.

2. Description of the Related Art

The ability for end effectors to flexibly come into contact with objects is becoming important in control methods of manipulators. Application of this to industrial robots could realize cooperative work between humans and robots, facilitating work of fitting parts to each other by controlling the direction of flexibility of end effectors, and so forth.

Also, applying this to legged locomotive robots could alleviate shock to the torso by coming into contact with the ground softly, and enable smooth ambulation over unsmooth terrain by absorbing difference in height.

In order to realize control of flexibility of the end effectors, impedance control where force sensors are worn on the end effectors, control using artificial muscle actuators, and so forth, is being performed. It is known that while human muscles are actuators, they are also control mechanisms with variable viscoelasticity. Rubber pneumatic artificial muscle actuators, of which the McKibben type artificial muscle actuator is representative, are similar to human muscles with regard to their viscoelastic properties. Now, controlling the softness of the artificial muscle actuators included in a manipulator enables contact with an object with optional end effector flexibility.

“Mechanical Properties of Robot Arm Operated with Muscle Coordinate System Consisted of Bi-articular Muscles and Mono-articular Muscles”, Toru OSHIMA, Tomohiko FUJIKAWA, and Minayori KUMAMOTO, Journal of The Japan Society for Precision Engineering, Vol. 66, No. 1 pp. 141-146 (hereinafter “Oshima et al”) proposes a “three-pair six-muscle model” manipulator having, in addition to artificial muscle actuators which drive a first link and a second link, a bi-articular simultaneous driving actuator to drive the first link and second link at the same time. Oshima et al have verified that by making the elasticity of the artificial muscle actuators to be equal, in a case where external force is applied to the end effectors along a line connecting a first joint and a end effector, there is exhibited a feature in stiffness characteristics in that the eternal force direction of the end effector and the direction of motion agree. McKibben actuators are difficult to use in motion control, due to the following reasons. The viscoelastic properties of McKibben actuators are nonlinear, and also control has to be applied to an antagonistic arrangement.

On the other hand, Japanese Patent Laid-Open No. 2012-86354 discloses deriving a simple feedback control system using saturation of control input, which controls joint angle at the same time as with stiffness control of the end effectors. However, McKibben type artificial muscle actuators have to control pneumatic pressure by opening and closing valves, and it is known to be difficult to obtain high responsivity. Accordingly, research is being advanced on variable stiffness actuation (VSA) actuators, which use motors as force generating elements, and further combine mechanical elements such as springs and dampers, to enable variable viscoelasticity like that of an artificial muscle actuator to be realized. VSA also has a feature that the output direction of force is not restricted to the direction of contraction.

“Bidirectional Antagonistic Variable Stiffness Actuation: Analysis, Design & Implementation” Florian Petit, Maxime Chalon, Werner Friedl, Markus Grebenstein, Alin Albu-Schaffer and Gerd Hirzinger, 2010 IEEE International Conference on Robotics and Automation, pp. 4189-4196 (hereinafter “Petit et al”) describes configuration a linear type VSA by linearly joining motors and non-linear springs, and situating linear type VSAs in an antagonistic manner as to a link. Both motors are used to control reserve tensile force of the non-linear springs, thereby changing the angle and joint stiffness of the manipulator. Petit et al describes providing non-linear springs with initial deformation, and perpetually performing control for antagonistic driving, which is referred to as “normal mode”. In a case where a greater joint driving torque becomes necessary, such as external force being applied to the end effector or the like, the reserve tensile force is reduced. This releases the antagonistic driving state, so both VSAs apply torque in the same direction to the joint, which is referred to as “helping mode”.

Petit et al describes antagonistic placement of linear type VSAs to perform antagonistic driving when accurate joint stiffness is necessary, and to perform non-antagonistic driving when greater torque is necessary. On the other hand, the artificial muscle actuators described in Oshima et al and Japanese Patent Laid-Open No. 2012-86354 are modeled with the force generating element, spring, and damper arrayed in parallel. Hereinafter, this arrangement will be referred to as “parallel type VSA”.

Using such a parallel type VSA enables generated force of the force generating element to be applied to the manipulator without passing through the spring and damper, and thus is advantageous in that highly-precise positioning control can be had. However, there has not been proposed as of yet a control system which transitions seamlessly between antagonistic driving and non-antagonistic driving, using a parallel type VSA.

SUMMARY OF THE INVENTION

Accordingly, the present invention uses parallel type VSAs for actuators to perform simultaneous control of end effector stiffness properties and joint angle under antagonistic driving, and seamlessly transitions from antagonistic driving to non-antagonistic driving when output of the actuators is insufficient or when reducing the output.

A robot device is provided. A manipulator includes a first link rotatably linked to a base by a first joint, and a pair of first actuators, modeled as a parallel connection of a force generating element, elastic element, and viscous element, selectively generating one generated force of tensile force and pushing force, and situated on either side of the first link so as to rotationally drive the first link on the first joint. The manipulator also includes a control unit which performs non-antagonistic driving where driving control of the first link is performed by causing one of the pair of first actuators to generate tensile force and the other to generate pushing force such that a first joint angle of the first joint reaches a first target joint angle, and antagonistic driving where driving control of the first link is performed by causing both of the pair of first actuators to generate tensile force, such that stiffness of the first joint reaches a first target stiffness when the first joint angle has converged at the first target joint angle. The control unit executes first joint torque computing processing to compute a first torque for the first joint, necessary to change the first joint angle to the first target joint angle. The control unit also executes first summing processing to obtain a first sum value, indicating a sum of generated force to be generated at each first actuator, from the first target stiffness. The control unit also executes first setting processing to set a first restricting coefficient to a value greater than 1 when performing the non-antagonistic driving, and to set the first restricting coefficient to 1 when performing the antagonistic driving. The control unit further executes first restricting processing in which |T₁|<U₁×r×h₁ is a first restricting condition, where the first joint torque is represented by T₁, the first sum value is represented by U₁, moment arm radius of the first link is represented by r, and the first restricting coefficient is represented by h₁, so as to restrict the first joint torque to a range satisfying the first restricting condition. The control unit also moreover executes first generated force computing processing to compute generated force at each first actuator, based on the first joint torque restricted in the first restricting processing. In the first setting processing, setting is performed at the time of the non-antagonistic driving when switching from the non-antagonistic driving to the antagonistic driving, such that the first restricting coefficient gradually nears 1.

According to the above configuration, highly precise motion control and control of link flexibility as to a manipulator using parallel type VSAs as actuators can be realized, by enabling transitioning between antagonistic driving and non-antagonistic driving.

Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating a viscoelasticity model of an actuator.

FIG. 2 is a schematic diagram illustrating a robot device according to a first embodiment.

FIG. 3 is a block diagram illustrating a configuration of a control device according to the first embodiment.

FIG. 4 is a functional block line diagram for describing control operations of a CPU according to the first embodiment.

FIG. 5 is a diagram illustrating simulation results according to the first embodiment.

FIGS. 6A through 6C are diagrams illustrating simulation results according to the first embodiment.

FIG. 7 is a schematic diagram illustrating a robot device according to a second embodiment.

FIG. 8 is a functional block line diagram for describing control operations of a CPU according to the second embodiment.

FIGS. 9A and 9B are diagrams illustrating trajectory design according to the second embodiment.

FIGS. 10A and 10B are diagrams illustrating simulation results according to the second embodiment.

FIGS. 11A through 11D are diagrams illustrating simulation results according to the second embodiment.

FIG. 12 is a diagram illustrating simulation results according to the second embodiment.

FIG. 13 is a schematic diagram illustrating a robot device according to a third embodiment.

FIG. 14 is a diagram for describing a stiffness ellipse according to the third embodiment.

FIG. 15 is a block diagram illustrating a configuration of a control device according to the third embodiment.

FIG. 16 is a functional block line diagram for describing control operations of a CPU according to the third embodiment.

FIG. 17 is a diagram illustrating simulation results according to the third embodiment.

FIGS. 18A and 18B are diagrams illustrating simulation results according to the third embodiment.

FIGS. 19A through 19C are diagrams illustrating simulation results according to the third embodiment.

FIGS. 20A through 20C illustrating simulation results according to the third embodiment.

FIGS. 21A and 21B are diagrams illustrating simulation results according to the third embodiment.

DESCRIPTION OF THE EMBODIMENTS

Embodiments for carrying out the present invention will be described in detail with reference to the drawings.

First Embodiment 1. Modeling

FIG. 1 is a schematic diagram illustrating a viscoelasticity model of an actuator. In the first embodiment, a parallel type VSA is used as an actuator. A muscle, i.e., parallel type VSA, is modeled using a force generating element, an elastic element, and a viscous element, connected in parallel, as illustrated in FIG. 1.

In FIG. 1, u represents generated force of the force generating element, and x represents the amount of contraction of muscle where the direction of contraction is the positive direction. The speed of contraction is expressed as follows.

{dot over (x)}

Also, the viscoelasticity of the muscle is modeled as

F=u−kux−bu{dot over (x)}  (1)

where k represents the elastic constant, b represents the viscosity constant, and F represents the force generated at the muscle. This model is characterized in that the elasticity and viscosity of the force generated at the muscle have a non-linear element proportional to the generated force u of the force generating element.

In the first embodiment, a parallel type VSA combining mechanisms of motors and springs is used as an actuator, thereby realizing viscoelasticity of muscles. For example, an actuator such as an electromagnetic motor can be used for the force generating element. Variable stiffness can be realized by using a spring and a mechanism for varying the length of the spring, and another actuator for driving this, as the elastic element. Variable viscoelasticity can be realized by using a semi-active damper using a variable orifice, as the viscous element.

FIG. 2 illustrates a robot device according to the first embodiment. The robot device 100 illustrated in FIG. 2 has a so-called one-link manipulator (hereinafter simply “manipulator”) 120. The manipulator 120 has a link 101 which is a first link, and actuators e₁ and f₁ which are a pair of bi-articular driving actuators.

A base end of the link 101 is rotatably linked to a base 103 by a joint J1 which is a first joint.

The actuators e₁ and f₁ are parallel type VSAs modeled as a parallel connection of the force generating element, elastic element, and viscous element. The actuators e₁ and f₁ selectively generate generating force of either pulling force or pushing force. The actuators e₁ and f₁ are disposed on either side of the link 101, so as to rotationally drive the link 101 on the joint J1. One end of the actuators e₁ and f₁ is fixed to the base 103 and the other end to the link 101.

The rotational angle of the link 101 which is the joint angle (first joint angle) of joint J1 is expressed as θ. The actuator f₁ disposed so as to increase the joint angle θ by contractile force (tensile force) of the force generating element of the actuator will be referred to as “folding side actuator”, and the actuator e₁ on the opposite side will be referred to as “unfolding side actuator”. The generated force of the force generating elements of the unfolding side and folding side actuators e₁ and f₁ are expressed as u_(e1) and u_(f1), respectively, inertia moment of the link 101 is expressed as I, and moment arm radius as r. These give the following motion equation.

I{umlaut over (θ)}=(u _(f1) −u _(e1))r−(u _(f1) +u _(e1))kr ²θ−(u _(f1) +u _(e1))br ²{dot over (θ)}  (2)

We can see that the difference in generated force u_(e1) and u_(f1) at the first term to the right side of Expression (2) gives the joint J1 rotational torque (joint torque), and the sum of generated forces u_(e1) and u_(f1) in the second and third terms to the right side change the stiffness and viscosity regarding the joint J1.

2. Control System Design

The robot device 100 includes a control device 200, and two drivers 301 and 302 which respectively drive the actuators e₁ and f₁, based on the generated force command values u_(e1) and u_(f1) from the control device 200.

The control device 200 generates the generated force command values u_(e1) and u_(f1) corresponding to the respective actuators e₁ and f₁. The control device 200 then outputs the generated force command values u_(e1) and u_(f1) to the drivers 301 and 302, thereby controlling the generated force of the actuators e₁ and f₁.

Before describing the operations of the control device 200, the device configuration of the control device 200 will be described. FIG. 3 is a block diagram illustrating the configuration of the control device 200.

The control device 200 is configured as a computer, including a central processing unit (CPU) 201 serving as a control unit (computing unit). The control device 200 also includes read only memory (ROM) 202, random access memory (RAM) 203, a hard disk drive (HDD) 204, a recording disk drive 205, and various interfaces 207, 209, and 210.

The CPU 201 has connected thereto the ROM 202, RAM 203, HDD 204, recording disk drive 205, and various interfaces 207, 209, and 210, via a bus 206. The ROM 202 stores basic programs such as a basic input/output system (BIOS) and so forth. The RAM 203 is a storage device which temporarily stores the results of computation processing performed at the CPU 201.

The HDD 204 serves as a storage unit to store various types of data, such as results of computation processing performed at the CPU 201, and as a recording medium recording programs 221 whereby the CPU 201 executes various types of computation processing described later. The CPU 201 executes various types of computation processing based on the programs 221 recorded in the HDD 204.

The recording disk drive 205 reads out various types of data and programs recorded in a recording disc 222.

The aforementioned drivers 301 and 302 are connected to the interface 210. The CPU 201 outputs the generated force command values u_(e1) and u_(f1) to the drivers 301 and 302 via the bus 206 and interface 210. The drivers 301 and 302 generate generated force at the actuators e₁ and f₁, corresponding to the generated force command values u_(e1) and u_(f1).

In the first embodiment, the robot device 100 includes a detecting unit 401 which is a first detecting unit omitted from illustration in FIG. 1, and a touch sensor 403. The detecting unit 401 is disposed at the joint J1 in FIG. 1, and detects the joint angle θ of the joint J1. The touch sensor 403 is disposed on the link 101, and detects whether or not an object has come into contact with the link 101.

The detecting unit 401 is connected to the interface 207, so that a signal indicating the detected joint angle θ is transmitted to the CPU 201 via the interface 207 and bus 206. The touch sensor 403 is connected to the interface 209, so that a signal indicating whether or not there has been contact is transmitted to the CPU 201 via the interface 209 and bus 206.

FIG. 4 is a functional block line diagram for describing control operations of the CPU 201. A robot control method will be described with reference to FIG. 4. Note that in FIG. 4, the manipulator 120 is denoted by reference symbol P. The CPU (control unit) 201 of the control device 200 functions as each part illustrated in FIG. 4 by reading out the program 221 from the HDD 204 and executing the program 221.

The CPU 201 functions as a joint torque computing unit 231 which executes first joint torque computation processing, a summing unit 232 which executes first summing processing, a setting unit 233 which executes first setting processing, and a restricting unit 234 which executes first restricting processing. The CPU 201 further functions as a generated force computing unit 235 which executes first generated force computing processing, based on the program 221.

In the first embodiment, the CPU 201 functions as the units 231 through 235, thereby positioning the joint angle (first joint angle) of the joint J1 to the target joint angle (first target joint angle) r_(a), and at the same time controls the stiffness of the joint J1 to the target stiffness (first target stiffness) r_(a). That is to say, the CPU 201 generates tensile force at one of the pair of actuators e₁ and f₁, and pushing force at the other, thus performing non-antagonistic driving to control driving of the link 101. Further, when the joint angle θ has converged on the target joint angle r_(a), the CPU 201 performs antagonistic driving to control driving of the link 101 by generating tensile force at both of the actuators e₁ and f₁, so that the stiffness of the joint J1 is the target stiffness r_(s).

Specifically, the joint torque computing unit 231 computes joint torque for the joint J1 (first joint torque) T₁ necessary for setting the joint angle θ to the target joint angle r_(a) (first joint torque computing step). In this first embodiment, the joint torque computing unit 231 is a feedback computing unit which executes feedback computing processing as the first joint torque computing processing. In feedback computing processing, the joint torque T₁ is obtained by feedback computation based on the difference between the joint angle θ and the target joint angle r_(a).

In further detail, the joint torque computing unit (feedback computing unit) 231 includes a difference computing unit 241, a gain adjusting unit 242, and a Proportional Integral Derivative (PID) control unit 243.

The difference computing unit 241 computes the difference between the joint angle θ and the target joint angle r_(a) (θ−r_(a)). The gain adjusting unit 242 sets the gain to 0 in a case where contact is detected by the contact sensor 403, and sets the gain to 1 if not detected. The PID control unit 243 computes feedback control torque (i.e., joint torque) T_(FB1) (T₁) to compensate the difference (θ−r_(a)), based on a transfer function K_(PID1).

In this section, a control method will be described where first, conditions for performing antagonistic driving are derived, and next, transition is made between antagonistic driving and non-antagonistic driving.

Determining generated force command values u_(e1) and u_(f1) so as to satisfy

(u _(f1) −u _(e1))r=T ₁  (3)

based on Expression (2) enables the feedback control torque T₁ to be applied to the joint J1.

However, the conditions relating to stiffness of the joint J1

(u _(f1) +u _(e1))kr ² =r _(a)  (4)

need to be satisfied at the same time.

The generated force command values u_(e1) and u_(f1) need to be defined so as to satisfy

U ₁ =r _(s) /kr ²  (6)

when U₁ is defined as the sum value of the generated force command values u_(e1) and u_(f1) as follows.

u _(f1) +u _(e1) =U ₁  (5)

In order to satisfy the feedback control torque T₁ and the sum value U₁ of generated force command values at the same time, it is sufficient for Expressions (3) and (5) to be solved regarding u_(e1) and u_(f1), to determine the following.

$\begin{matrix} {{u_{f\; 1} = \frac{U_{1} + {T_{1}/r}}{2}},{u_{e\; 1} = \frac{U_{1} - {T_{1}/r}}{2}}} & (7) \end{matrix}$

In order to perform antagonistic driving in which the actuators e₁ and f₁ generate tensile force only in the tensile direction (contractile force), it is sufficient that the conditions

u _(f1)>0,u _(e1)>0  (8)

be satisfied at the same time.

Expressions (7) and (8) yield the following conditions.

T ₁ /r<U ₁ ,T ₁ /r>−U ₁  (9)

That is to say, the manipulator 120 is positioned at the target angle r_(a) by the feedback control torque T₁ at the same time as the stiffness of the joint J1 attaining the target stiffness r_(s) if the feedback control torque T₁ satisfies the following conditions.

−U ₁ r<T ₁ <U ₁ r  (10)

Expression (10) can be realized by restricting the feedback control torque T₁ to

|T ₁ |<U ₁ r  (11)

as illustrated in the block line diagram in FIG. 4. Alternatively, there is a method where the gain of the joint torque computing unit 231, which performs feedback control, is changed, so that the magnitude of control input fits within the range in Expression (10).

Next, it is sufficient for Expression (10) to not hold, in order to perform non-antagonistic driving so as to generate pushing force at the actuators e₁ and f₁. The reason is that Expression (10) not holding means that the conditions of Expression (8), whereby only force in the tensile direction is generated at the actuators e₁ and f₁, are not satisfied. Accordingly, in the first embodiment, a restricting coefficient h₁ which is a first restricting coefficient is introduced as a parameter for adjusting the degree of antagonism, and Expression (10) is rewritten as follows.

|t ₁ |<U ₁ rh ₁  (12)

Now, when h₁=1, Expression (12) and (10) are equal, so antagonistic driving is achieved. On the other hand, setting h₁>>1 achieves non-antagonistic driving.

That is to say, in the first embodiment, first, the summing unit 232 obtains the sum value U₁ of indicating the sum of generated force generated at the actuators e₁ and f₁, based on the relational expression in Expression (6) from the target stiffness r_(s) (first summing step).

In a case of non-antagonistic driving, the setting unit 233 sets the restricting coefficient h₁ to a value greater than 1, and in a case of antagonistic driving sets the restricting coefficient h₁ to 1 (first setting step).

The restricting unit 234 includes a multiplying unit 251 which multiples the sum value U₁ by the moment arm radius r of the link 101, a multiplying unit 252 which further multiples by the restricting coefficient h₁, and a restricting processing unit 253 which restricts the feedback control torque T₁ to the computed results of the multiplying unit 252, which are U₁×r×h₁. Accordingly, the restricting unit 234 has as the first restricting condition |T₁|<U₁×r×h₁, and restricts the feedback control torque T₁ to a range so as to satisfy the first restricting condition (first restricting step).

The generated force computing unit 235 computes the generated force command values u_(e1) and u_(f1) of the actuators e₁ and f₁ based on the feedback control torque T₁ restricted by the restricting unit 234 (first generated force computing step). In detail, the generated force computing unit 235 computes (U₁−T₁/r)/2 as the generated force command value u_(e1), and computes (U₁+T₁/r)/2 as the generated force command value u_(f1).

In further detail, the generated force computing unit 235 includes a multiplying unit 261 which multiples T₁ by 1/r, a subtracting unit 263 which subtracts the computation results at the multiplying unit 261, which are T₁/r, from U₁, and a multiplying unit 263 which multiples the subtraction results of the subtracting unit 265, which are U₁−T₁/r, by ½. The generated force computing unit 235 also includes a multiplying unit 262 which multiples T₁ by 1/r, an adding unit 264 which adds the computation results at the multiplying unit 262, which are T₁/r, to U₁, and a multiplying unit 266 which multiples the addition results of the adding unit 264, which are U₁+T₁/r, by ½.

The setting unit 233 uses the above configuration to set the restricting coefficient h₁ so as to gradually approach 1 when in non-antagonistic driving when switching from non-antagonistic driving to antagonistic driving. Thus, smoothly changing the restricting coefficient h₁ enables antagonistic driving and non-antagonistic driving to be seamlessly transitioned.

Now, in a case where the gain of the feedback control system is high, the stiffness of the joint J1 accordingly becomes dominant. In a case where contact has occurred (i.e., in a case where the contact sensor 403 as detected contact), the gain adjusting unit 242 sets contact gain Gt=0 so as to cut off the feedback system illustrated in FIG. 4. Accordingly, the stiffness of the link 101 (stiffness of the joint J1) can be quickly switched to the target stiffness r_(s) at an optional point-in-time, such as having detected contact with a person or object.

In the first embodiment, the transfer function of the PID control unit 243 is as follows.

$\begin{matrix} {{K_{{PID}\; 1}(s)} = \left( {2.5 + \frac{2}{s} + \frac{0.14\; s}{{1/\left( {100 \cdot 2 \cdot \pi} \right)}s\; 1}} \right)} & (13) \end{matrix}$

3. Simulation

Simulation was performed using the control system described above. The inertia moment of the link 101 was set to I=8.3×10⁻² kgm², the moment arm radius of the link 101 to r=0.1 m, and the elastic constant and viscosity constant to k=25 and b=1, respectively. The target joint angle was set according to a ramp position is performed where the target joint angle r_(a)=20 degrees is reached in 2 seconds from the initial angle 0 degrees. At this time, the target stiffness of the joint J1 is controlled to r_(s)=U₁×k×r²=0.8×k×r² Nm/rad. Now, since k and r are constants, it is sufficient to control U₁ which is the sum of generated force so as follows.

U ₁=0.8  (14)

A great driving torque is necessary at the time of starting control, so in the present embodiment, non-antagonistic driving is performed at this time, and at the point of ending positioning antagonistic driving is performed to realize the desired joint stiffness. As illustrated in FIG. 5, the restricting coefficient (parameter) h₁ is set to h₁>1 at the time of starting control, h₁ is then gradually brought closer to 1, finally h₁=1 at 1.5 seconds later.

FIG. 6A is a graph illustrating the joint angle θ and target joint angle r_(a). FIG. 6B is a graph illustrating response of generated force command values u_(e1) and u_(f1). FIG. 6C is a graph illustrating the difference, sum, and the response of T₁/r of the generated force command values u_(e1) and u_(f1). In FIG. 6A, the joint angle θ represented by a solid line and the target joint angle r_(a) by a broken line. In FIG. 6B, the response of the generated force command value u_(e1) is represented by a broken line, and the response of the generated force command value u_(f1) is represented by a solid line. In FIG. 6C, the difference of the generated force command values u_(e1) and u_(f1) is represented by a solid line, the sum by a broken line, and the response of T₁/r by a single-dot dashed line.

FIG. 6A illustrates that the joint J1 is positioned at the target joint angle r_(a). In FIG. 6B, the generated force command values u_(e1) and u_(f1) distribute the feedback control torque T₁ according to the conditions illustrated in Expressions (7) and (12).

When starting control, h₁>1 is set is non-antagonistic driving is performed, and accordingly the generated force command value u_(e1) is a negative value. The unfolding side actuator generates pushing force, and the folding side actuator generates tensile force (contractile force). Accordingly, the maximum value of generated force at the folding side actuator can be reduced.

From 1.5 seconds after starting control, h₁=1 is set, whereby the generated force of both actuators e₁ and f₁ are positive values only. It can thus be understood that the state has transitioned to antagonistic driving.

Due to the antagonistic driving, the u_(e1)+u_(f1)=U₁ indicated by the broken line in FIG. 6C is at 0.8 from 1.5 seconds and thereafter, so it can be understood that the stiffness of the joint J1 is controlled to the target stiffness r_(s) at the positioned target joint angle r_(a). The u_(e1)−u_(f1) indicated by the solid line in FIG. 6C is overlays the T₁/r indicated by the single-dot dashed line, thus satisfying the conditions of Expression (3).

Second Embodiment

A second embodiment derives a 2-degree-of-freedom control system which incorporates a feed-forward control system, besides the feedback control system illustrated in the first embodiment. The feed-forward control system is derived so as to enable seamless transition between antagonistic driving and non-antagonistic driving, in the same way as with the feedback control system. Further, in the second embodiment, a 1-link manipulator model is derived taking backlash into consideration, as a model including backlash. Antagonistic driving is performed for the positioning target joint angle, so as to realize highly-precise positioning.

1. Modeling

FIG. 7 illustrates a robot device according to the second embodiment. The robot device 100A illustrated in FIG. 7 has what is known as a 1-link manipulator (hereinafter simply referred to as “manipulator”) 120A. The manipulator 120A includes a link 101 which is a first link, actuators e₁ and f₁ which are a pair of first actuators, and a transmission mechanism 104 to transmit the generated force of the actuators e₁ and f₁ to the link 101A.

A base end of the link 101A is rotatably linked to a base 103 by the joint J1 which is a first joint.

The actuators e₁ and f₁ are parallel type VSAs molded by parallel connection of force generating element, elastic element, and viscous element. The actuators e₁ and f₁ are disposed on either side of the link 101A so that the link 101A is rotationally driven on the joint J1, and selectively generate one of tensile force and pushing force.

One end of the actuators e₁ and f₁ is foxed to the base 103A. The transmission mechanism 104 is a rack-and-pinion mechanism. The transmission mechanism 104 includes a pair of rack gears 105 and 106 fixed to the other end of the actuators e₁ and f₁, and a pinion gear 107 which is formed integrally with the base end of the link 101A and meshes with the pair of rack gears 105 and 106. Note that while the second embodiment will be described exemplifying an case where the transmission mechanism 104 is a rack-and-pinion mechanism, a chain and sprocket mechanism or the like may be used for the transmission mechanism 104.

In the second embodiment, a model is derived taking backlash of the transmission mechanism 104 into consideration, in addition to the properties of the actuators e₁ and f₁. In the same way as with the first embodiment described above, the generated force of the force generating elements which are the actuators e₁ and f₁ in antagonistic placement are u_(e1) and u_(f1) respectively. Also, the rotational angle of the link 101A, i.e., the joint angle of the joint J1 (first joint angle) is θ, the inertia moment of the link 101 is expressed as I₀, and the moment arm radius of the link 101A as r. Moreover, the mass of the rack gears 105 and 106 at the folding side and unfolding side in the transmission mechanism 104 are expressed as M_(e) and M_(f) respectively, as illustrated in FIG. 7. The direction of displacement of the transmission mechanism 104 is positive in the direction where the link 101 is driven in the positive direction of θ, and expressed as x_(e) and x_(f).

In the second embodiment, we will consider contact between the rack gears 105 and 106 of the transmission mechanism 104 connected to the actuators e₁ and f₁, and the pinion gear 107 fixed to the link 101A. We will express contact stiffness as k_(ge) and k_(gf). Contact attenuation may also be taken into consideration, but will be omitted in this deriving process.

The motion expression is derived as follows. If we say that θ_(t) is the angle of slack, and in a case where the motion expression regarding the folding side of the transmission mechanism 104 and the link 101A is r×θ−x_(f)<−r×θ_(t) (case i),

M _(f) {umlaut over (x)} _(f) −k _(gf)(rθ−x _(f) +rθ _(t))=u _(f) −ku _(f) x _(f)  (15)

I ₀ {umlaut over (θ)}+k _(gf)(rθ−x _(f) +rθ _(t))=0  (16)

holds.

In the case of r×θ−x_(f)>r×θ_(t) (case ii),

M _(f) {umlaut over (x)} _(f) −k _(gf)(rθ−x _(f) r−θ _(t))=u _(f) −ku _(f) x _(f)  (17)

I ₀ {umlaut over (θ)}+k _(gf)(rθ−x _(f) −rθ _(t)=0  (18)

holds.

In the case of −r×θ_(t)<r×θ−x_(f)<r×θ_(t) (case iii),

M _(f) {umlaut over (x)} _(f) =u _(f) −ku _(f) x _(f)  (19)

I{umlaut over (θ)}=0  (20)

holds.

Now, matrix notation of θ_(f)=[x_(f) θ]^(T) yields

$\begin{matrix} {{{{I_{f}{\overset{¨}{\theta}}_{f}} + {k_{f}\theta_{f}} + {N_{f}\theta_{t}}} = \begin{bmatrix} {u_{f} - {{ku}_{f}x_{f}}} & 0 \end{bmatrix}^{T}}{where}{{I_{f} = \begin{bmatrix} M_{f} & 0 \\ 0 & I_{0} \end{bmatrix}},{K_{f} = {\begin{bmatrix} k_{gf} & {- {rk}_{gf}} \\ {- k_{gf}} & {rk}_{gf} \end{bmatrix}\left( {{{case}\mspace{14mu} i},{ii}} \right)}},{K_{f} = {0_{2 \times 2}\left( {{case}\mspace{14mu} {iii}} \right)}}}{{N_{f} = {{r\begin{bmatrix} {- k_{gf}} \\ k_{gf} \end{bmatrix}}\left( {{case}\mspace{14mu} i} \right)}},{N_{f} = {{r\begin{bmatrix} k_{gf} \\ {- k_{gf}} \end{bmatrix}}\left( {{case}\mspace{14mu} {ii}} \right)}},{N_{f} = {0_{2 \times 1}\left( {{case}\mspace{14mu} {iii}} \right)}}}} & (21) \end{matrix}$

holds.

In the same way, the motion equation of the mechanism at the unfolding side in the transmission mechanism 104 and the link 101A is

I _(e){umlaut over (θ)}_(e) +k _(e)θ_(e) +N _(e)θ_(t)=[0−u _(e) −ku _(e) x _(e)]^(T)  (22)

where r×θ−x_(e)<−r×θ_(t) (case iv), r×θ−x_(e)>r×θ_(t) (case v), −r×θ_(t)<r×θ−x_(e)<r×θ_(t) (case vi), and θ_(e)=[θx_(e)]^(T).

Now,

${I_{e} = \begin{bmatrix} I_{0} & 0 \\ 0 & M_{e} \end{bmatrix}},{K_{e} = {\begin{bmatrix} {rk}_{ge} & {- k_{ge}} \\ {- {rk}_{ge}} & k_{ge} \end{bmatrix}\left( {{{case}{\mspace{11mu} \;}{iv}},v} \right)}},{K_{e} = {0_{2 \times 2}\left( {{case}\mspace{14mu} {vi}} \right)}}$ ${N_{e} = {{r\begin{bmatrix} k_{ge} \\ {- k_{ge}} \end{bmatrix}}\left( {{case}\mspace{14mu} {iv}} \right)}},{N_{e} = {{r\begin{bmatrix} {- k_{ge}} \\ k_{ge} \end{bmatrix}}\left( {{case}\mspace{14mu} v} \right)}},{N_{e} = {0_{2 \times 1}\left( {{case}\mspace{14mu} {vi}} \right)}}$

holds.

Thus, from Expressions (21) and (22), the motion equation for the entire system of both sides of the transmission mechanism 104 and the link 101A is as follows.

I _(a)θ_(a) +K _(a)θ_(a) +N _(a)θ_(t) =[u _(f) −ku _(f) x _(f)0−u _(e) −ku _(e) x _(e)]^(T)  (23)

where θ_(a)=[x_(f)θx_(e)]^(T).

Now,

$\begin{matrix} {{{I_{a} = \begin{bmatrix} M_{f} & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & M_{e} \end{bmatrix}},{K_{a} = \begin{bmatrix} K_{f{({1,1})}} & K_{f{({1,2})}} & 0 \\ K_{f{({2,1})}} & {K_{f{({2,2})}} + K_{e{({1,1})}}} & K_{e{({1,2})}} \\ 0 & K_{e{({2,1})}} & K_{e{({2,2})}} \end{bmatrix}}}{N_{a} = \begin{bmatrix} N_{f{({1,1})}} \\ {N_{f{({2,1})}} + N_{e{({1,1})}}} \\ N_{e{({2,1})}} \end{bmatrix}}} & (24) \end{matrix}$

holds.

2. Control System

The robot device 100A includes a control device 200A, and two drivers 301 and 302 which respectively drive the actuators e₁ and f₁, based on the generated force command values u_(e1) and u_(f1) from the control device 200A.

The control device 200A generates the generated force command values u_(e1) and u_(f1) corresponding to the respective actuators e₁ and f₁. The control unit 200A then outputs the generated force command values u_(e1) and u_(f1) to the drivers 301 and 302, thereby controlling the generated force of the actuators e₁ and f₁. The device configuration of the control device 200A is the same as that of the control device 200 (FIG. 3) described in the first embodiment, so detailed description will be omitted. In the second embodiment, the control operations of the CPU 201 based on the program 221A illustrated in FIG. 3 are different from those of the program 221 described in the first embodiment.

FIG. 8 is a functional block line diagram for describing the control operations of the CPU 201 illustrated in FIG. 3. A robot control method will now be described with reference to FIG. 8. Note that in FIG. 8, the manipulator 120A is denoted by reference symbol P. The CPU (control unit) 201 of the control device 200A functions as each part illustrated in FIG. 8 by reading out the program 221A from the HDD 204 and executing the program 221A.

That is to say, the CPU 201 functions as a joint torque computing unit 231A which executes first joint torque computation processing, the summing unit 232 which executes first summing processing, the setting unit 233 which executes first setting processing, and the restricting unit 234 which executes first restricting processing, based on the program 221A. The CPU 201 further functions as the generated force computing unit 235 which executes first generated force computing processing, based on the program 221A.

In the second embodiment, at the time of starting driving of the manipulator 120A one actuator is constricted (tensed) while the other actuator is driven so as to push, thereby effectively using limited actuator output. Further, when stabilized, the two actuators e₁ and f₁ are subjected to antagonistic driving, thereby compensating for backlash in the mechanism, and performing highly precise positioning.

In the second embodiment, feed-forward control torque is provided to the generated force command values u_(e1) and u_(f1) in addition to the feedback control torque, enabling the join angle to track the target trajectory in a highly precise manner, while controlling stiffness of the joint at the same time. The target trajectory of the joint is expressed as r_(a), and the target stiffness as r_(s).

2.1 Feed-Forward Control System Design

In this section, a method for deriving feed-forward control torque to be provided to the generated force command values u_(e1) and u_(f1) will be described. First, we will say that the difference of the generated force command values u_(e1) and u_(f1) is T_(FFW1), and the sum is U₁.

(u _(f1) −u _(e1))r=T _(FFW1)  (25)

u _(f1) +u _(e1) =U ₁  (26)

U₁ is determined as

U ₁ =r _(s) /kr ²  (27)

in the second embodiment as well, since the target stiffness of the joint J1 is r_(s).

That is to say, the summing unit 232 obtains the sum value U₁ represented the sum of generated forces generated by the actuators e₁ and f₁, based on the relational expression of Expression (27), from the target stiffness r_(s) (first summing step).

The joint torque computing unit 231A computes joint torque for the joint J1 (first joint torque) T₁ necessary for setting the joint angle θ to the target joint angle r_(a) (first joint torque computing step). In this second embodiment, the joint torque computing unit 231A includes the feedback computing unit 231 including the difference computing unit 241, the gain adjusting unit 242, and the PID control unit 243, and also includes a feed-forward computing unit 311 and adding unit 312.

The feed-forward computing unit 311 executes feed-forward computing processing to obtain the feed-forward control torque T_(FFW1) for the joint J1, using the sum value U₁, target joint angle r_(a), and viscoelasticity constants k and b of the actuators e₁ and f₁.

The feedback computing unit 231 performs feedback computing the same as with the first embodiment described above, to obtain the feedback control torque T_(FB1).

The adding unit 312 then adds the feedback control torque T_(FB1) to the feed-forward control torque T_(FFW1) so as to perform adding processing to obtain the joint torque T₁.

If we express the angular velocity and angular acceleration of the target joint angle (target trajectory) r_(a) as

{dot over (r)}_(a),{umlaut over (r)}_(a) the feed-forward control torque T_(FFW1) for the joint angle θ to track the target trajectory r_(a) is obtained as follows.

T _(FFW1) =I{umlaut over (r)} _(a) +U ₁ kr ² r _(a) +U ₁ br ² {dot over (r)} _(a),  (28)

Solving Expressions (25) and (26) regarding the generated force command values u_(e1) and u_(f1) yields the following.

$\begin{matrix} {{u_{f\; 1} = \frac{U_{1} + {T_{{FFW}\; 1}/r}}{2}},{u_{e\; 1} = \frac{U_{1} + {T_{{FFW}\; 1}/r}}{2}}} & (29) \end{matrix}$

In the same way as with the antagonistic driving conditions in the first condition, a zone where T_(FFW1) satisfies the conditions of

|T _(FFW1) |<U ₁ r  (30)

is u_(f1)>0, u_(e1)>0, where antagonistic driving is performed.

However, in a zone where the conditions of Expression (30) are not satisfied, the value of one or the other of the generated force command values u_(e1) and u_(f1) becomes a negative value, so the force generating element generates pushing force. At this time, the viscoelasticity constant in the viscoelasticity model of the muscle is negative from Expression (1), but realizing negative viscoelasticity in a mechanical system is difficult. Accordingly, we will remove the restrictions on the target stiffness of the joint for zones where the generated force is negative, so that the viscoelasticity constant of the parallel type VSA is 0.

Accordingly, a zone where u_(f1)<0 is rewritten as follows.

T _(FFW1f) =I{umlaut over (r)} _(a) +u _(e1) kr ² r _(a) +u _(e1) br ² {dot over (r)} _(a)  (31)

Also, a zone where u_(e1)<0 is rewritten as follows.

T _(FFW1e) =I{umlaut over (r)} _(a) +u _(f1) kr ² r _(a) +u _(f1) br ² {dot over (r)} _(a)  (32)

Based on Expression (28) we will express feed-forward control torque where a zone in which Expression (30) is not satisfied has been substituted by T_(FFW1f) or T_(FFW1e) as T_(FFW1)′. Substituting this into the distribution Expression (33) again yields generated force command values as follows.

$\begin{matrix} {{u_{f\; 1}^{\prime} = \frac{U_{1} + {T_{{FFW}\; 1}^{\prime}/r}}{2}},{u_{e\; 1}^{\prime} = \frac{U_{1} + {T_{{FFW}\; 1}^{\prime}/r}}{2}}} & (33) \end{matrix}$

That is to say, the feed-forward computing unit 311 computes the feed-forward control torque T_(FFW1) by inverse dynamics, and determines whether or not |T_(FFW1)|<U₁×r is satisfied. In the event that these conditions are not satisfied, the feed-forward computing unit 311 computes the feed-forward control torque T_(FFW1)′ by inverse dynamics again, having set the viscoelasticity constants k and b for the actuator regarding which the generated force is a negative value.

The above derivation assumes that the elasticity of the muscle occurs proportionate to the angle from θ=0 degrees. In order to generate feed-forward control input with an optional angle as the reference angle for elasticity to occur at the muscle (hereinafter “neutral angle”) the following expression can be used instead of Expression (28),

T _(FFW1) =I{umlaut over (r)} _(a) +U ₁ kr ²(r _(a)−θ_(c))+U ₁ br ² {dot over (r)} _(a)  (34)

where θ_(c) represents the neutral angle.

2.2 2-Degree-of-Freedom Control System

FIG. 8 illustrates the feed-forward control system as K_(FFW1). The PID control unit 243 indicated by the transfer function K_(PID1) in the feedback control system outputs control input torque T_(FB1) to compensate for error between the joint angle θ and target joint angle r_(a), as described in the first embodiment. Determining the generated force command values U_(e1) and u_(f1) so that

(u _(f1) −u _(e1))r=T′ _(FFW1) +T _(FB1) =T′ ₁  (35)

is satisfied yields the joint torque T₁′, which is the sum of the feed-forward control torque T′_(FFW1) and feedback control torque T_(FB1), for the joint J1.

The joint torque T₁′ and sum value U₁ can be satisfied at the same time by solving Expressions (35) and (5) for u_(e1) and u_(f1), and determining the following.

$\begin{matrix} {{u_{f\; 1} = \frac{U_{1} + {T_{1}^{\prime}/r}}{2}},{u_{e\; 1} = \frac{U_{1} + {T_{1}^{\prime}/r}}{2}}} & (36) \end{matrix}$

However, feed-forward control by non-antagonistic driving is performed in zones where the conditions given in Expression (30) are not satisfied. The antagonistic driving conditions may be removed for the feedback control system.

Accordingly, in the second embodiment, the parameter h₁ which adjust the antagonistic degree as described in the first embodiment (restricting coefficient) is automatically generated such that h₁=1 in a zone where conditions given in Expression (30) are satisfied, and h₁=10 if not satisfied. Now, discontinuity in switching between h₁=1 and h₁=10 is a cause of chattering occurring in the control input at the time of transitioning between antagonistic driving and non-antagonistic driving. Accordingly, the feed-forward computing unit 311 runs the generated parameter h₁ through a zero phase low-pass filter beforehand. Further, restriction of

|T′ ₁ |<U ₁ rh ₁  (37)

is applied in the same way as with the first embodiment, whereby transition between antagonistic driving and non-antagonistic driving can be performed seamlessly.

2.3 Trajectory Design

Next, a design method for the target trajectory r_(a) and target stiffness r_(s) of the joint J1 will be described. In the second embodiment, the target trajectory angle r_(a) uses a trajectory having an acceleration zone, a constant velocity zone, and a deceleration zone, as illustrated in FIG. 9A. Here, r_(aS) and r_(aF) are the initial angle and target angle of the trajectory, respectively. Also, t_(a), t_(b), and t_(fin) are the starting time of the constant velocity zone, ending time of the constant velocity zone, and ending time of positioning. Further, the target stiffness r_(s) is set such that high stiffness r_(smax) is achieved during the acceleration and deceleration zones, and low stiffness r_(smin) at the constant velocity zone, as illustrated in FIG. 9B. Due to changing the stiffness, at the time of starting driving the manipulator 120A is accelerated by elastic force of the muscle, and in the constant velocity zone is driven mostly by inertial due to the low stiffness. Accordingly, driving using little muscle force generation is enabled.

In the second embodiment, trajectory having an acceleration zone, a constant velocity zone, and a deceleration zone has been described, but a trajectory not having a constant velocity zone, such as a minimum jerk trajectory for example, may be used. Further, the target stiffness may be constant in a case where efficiency of driving is not taken into consideration.

3. Simulation

Simulation was performed using the control system described above. The inertia moment of the link 101A was set to I=8.3×10⁻² kgm², the moment arm radius to r=0.1 m, and the elastic constant and viscosity constant to k=25 and b=3, respectively. The target trajectory r_(a) was set such that initial angle r_(aS)=0 degrees, target angle r_(aF)=20 degrees, constant velocity zone starting time t_(a)=0.35 seconds, constant velocity zone ending time t_(b)=0.45 seconds, and positioning ending time t_(fin)=0.8 seconds. The target stiffness for the joint J1 was r_(smax)=2.3×k×r² Nm/rad, r_(smin)=0.8×k×r² Nm/rad. Now, since k and r are constants, it is sufficient to control U₁ which is the sum of generated force so as to be U₁=2.3 in the acceleration and deceleration zones and U₁=0.8 in the constant velocity zone.

In FIG. 10A, the feed-forward control torque T_(FFW1) derived from the target trajectory r_(a) by the procedures illustrated in section 2.1 is illustrated by the solid line, and the product of the target stiffness and moment arm by the broken line. In FIG. 10A, the conditions given in Expression (30) are not satisfied in the zone from approximately 0.05 seconds to 0.3 seconds, so non-antagonistic driving is performed in this zone. FIG. 10B illustrates the parameter h₁ for adjusting the degree of antagonism.

In the second embodiment, h₁=10 is set when non-antagonistic driving, so that the parameter is first generated as indicated by the broken line, and further, a zero phase low-pass filter is used to prevent rapid switching. This parameter h₁ is indicated by a solid line. Accordingly, efficient acceleration is performed during non-antagonistic driving in the acceleration zone from the start of control, and seamlessly transitions to antagonistic driving in the deceleration zone, thus generating feedback control torque to compensate for backlash of the mechanism.

Next, response according to the 2-degree-of-freedom control using the feedback torque control will be described. FIG. 11A illustrates the joint angle θ and target trajectory r_(a) by a solid line and broken line, respectively, and FIG. 11B illustrates the response of the generated force command values u_(e1) and u_(f1) by a solid line and broken line, respectively. Further, FIG. 11C illustrates the difference between generated force command values u_(e1) and u_(f1) by a solid line and the sum by a broken line, and the response of T₁′/r by a single-dot dashed line. FIG. 11D illustrates the feed-forward control torque T′_(FFW1) by a solid line, and the feedback control torque T_(FB1) by a broken line.

The joint angle illustrated by the solid line in FIG. 11A nearly overlays the trajectory illustrated by the broken line, indicating that the joint J1 is tracking the target trajectory. In FIG. 11B, the generated force u_(f1) of the actuator f₁ at the folding side, indicated by the solid line, constantly maintains a positive value. On the other hand, the generated force u_(e1) of the actuator e₁ at the unfolding side, indicated by the broken line, takes a negative value in zones where the parameter h₁ for adjusting the degree of antagonism, illustrated in FIG. 10 is greater than 1. This is because the actuator e₁ at the unfolding side is generating pressing force. After 0.36 seconds where the parameter h₁ becomes 1, the control transitions to antagonistic driving, where it can be seen that both actuators e₁ and f₁ are generating tensile force (contractile force). This antagonistic driving compensates for backlash in the transmission mechanism 104, so positioning can be made to the target angle in a precise angle. Further, in FIG. 11C, the u_(e1)+u_(f1)=U₁ indicated by the broken line is 2.3 in the acceleration and deceleration zones after 0.36 seconds, and 0.8 in the constant velocity zone, so it can be seen that the stiffness of the joint J1 is being controlled to the target value. Also, the u_(e1)−u_(f1) indicated by the solid line overlays the T₁′/r indicated by the single-dot dashed line, which satisfies the conditions of Expression (3).

FIG. 12 illustrates a comparison with tracking error of 2-degree-of-freedom control and feed-forward control alone. In the case of feed-forward control alone, the backlash of the transmission mechanism 104 is the model error, so great error occurs. With 2-degree-of-freedom control, the feedback control system compensates for the modeling error, so it can be seen that precise positioning control can be performed.

According to the second embodiment, acceleration is performed at the time of starting driving by non-antagonistic driving, and transitioning to antagonistic driving when stable compensates for the backlash of the mechanism, so highly precise positioning can be performed.

Third Embodiment

Next, description will be made regarding a robot device according to a third embodiment of the present invention.

1. Modeling

FIG. 13 is a schematic diagram illustrating a robot device according to the third embodiment. The robot device 100B includes a manipulator 120B, a control device 200B, and six drivers 301 through 306. In the third embodiment, the manipulator 120B is controlled regarding joint angle and stiffness at the same time, which involves transition of antagonistic driving and non-antagonistic driving.

The manipulator 120B is a “three-pair six-muscle model” two-link manipulator, having a link (first link) 101 rotatably linked to the base 103 by a joint (first joint) J1, and a link (second link) 102 rotatably linked to the link 101 by a joint (second joint) J2.

The manipulator 120B also includes a pair of actuators (first actuators) e₁ and f₁ disposed on either side of the link 101 so as to rotationally drive the link 101 on the joint J1. The manipulator 120B further includes a pair of actuators (second actuators) e₂ and f₂ disposed on either side of the link 102 so as to rotationally drive the link 102 on the joint J2. Moreover, the manipulator 120B includes a pair of actuators (third actuators) e₃ and f₃ disposed on either side of the links 101 and 102 so as to rotationally drive the links 101 and 102 on the joints J1 and J2 at the same time.

The pair of actuators e₃ and f₃ are bi-articular simultaneously driving actuators disposed to drive the link 101 and link 102 at the same time. Bi-articular simultaneously driving actuators are actuators disposed so as to drive the first link and second link at the same time. The human body is known to include bi-articular simultaneously driving actuators in the upper arms and thighs called bi-articular muscles. While the array of muscles in human limbs is complicated, a working concept of the muscles has been introduced to propose a two-link model according to a “three-pair six-muscle model” such as illustrated in FIG. 13. Note that actuators which drive a single link, such as the antagonistic pair of actuators e₁ and f₁ and the antagonistic pair of actuators e₂ and f₂, are called mono-articular driving actuators.

The actuators e₁, f₁, e₂, f₂, e₃, and f₃ are actuators having the muscle viscoelastic properties illustrated in FIG. 1 as described in the first embodiment. That is to say, the actuators e₁, f₁, e₂, f₂, e₃, and f₃ are modeled after parallel connection of a force generating element, an elastic element, and a viscoelastic element, and selectively generate one of tensile force and pushing force.

Let us say that u_(en) and u_(fn) (n=1, 2, 3) are generated forces of force generating elements (generated force command values), and k_(en), k_(fn), b_(en), and b_(fn) (n=1, 2, 3) are elastic force constants and viscosity force constants of the actuators. We will also say that the rotational angles of the links 101 and 102 (e.g., the joint angles of the joints J1 and J2) are θ₁ and θ₂. We will further say that the inertia moments of the links 101 and 102 are I₁ and I₂, the lengths of the links 101 and 102 are l₁ and l₂, and the mass of the links 101 and 102 are m₁ and m₂, the moment arm radius is r for both the links 101 and 102. If we say that the elastic force constant and viscosity force constant of the muscles are k and b respectively in the third embodiment, the motion equation is as follows.

$\begin{matrix} {{{\left( {{m_{1}l_{1}^{2}} + I_{1} + {4m_{2}l_{1}l_{2}\cos \; \theta_{2}} + {m_{2}I_{2}^{2}} + I_{2}} \right){\overset{¨}{\theta}}_{1}} + {\left( {{m_{2}l_{2}^{2}} + I_{2} + {2m_{2}l_{1}l_{2}\cos \; \theta_{2}}} \right){\overset{¨}{\theta}}_{2}} - {2m_{2}l_{1}{l_{2}\left( {{2{\overset{.}{\theta}}_{1}} + {\overset{.}{\theta}}_{2}} \right)}\sin \; \theta_{2}{\overset{.}{\theta}}_{2}}} = {{\left( {u_{f\; 1} - u_{e\; 1}} \right)r} - {\left( {u_{f\; 1} + u_{e\; 1}} \right){kr}^{2}\theta_{1}} - {\left( {u_{f\; 1} + u_{e\; 1}} \right){br}^{2}{\overset{.}{\theta}}_{1}} + {\left( {u_{f\; 3} - u_{e\; 3}} \right)r} - {\left( {u_{f\; 3} + u_{e\; 3}} \right){{kr}^{2}\left( {\theta_{1} + \theta_{2}} \right)}} - {\left( {u_{f\; 3} + u_{e\; 3}} \right){{br}^{2}\left( {{\overset{.}{\theta}}_{1} + {\overset{.}{\theta}}_{2}} \right)}}}} & (38) \\ {{{\left( {{m_{2}l_{2}^{2}} + I_{2} + {2m_{2}l_{1}l_{2}\cos \; \theta_{2}}} \right){\overset{¨}{\theta}}_{1}} + {\left( {{m_{2}I_{2}^{2}} + I_{2}} \right){\overset{¨}{\theta}}_{2}} + {2m_{2}l_{1}l_{2}\sin \; \theta_{2}{\overset{.}{\theta}}_{1}^{2}}} = {{\left( {u_{f\; 2} - u_{e\; 2}} \right)r} - {\left( {u_{f\; 2} + u_{e\; 2}} \right){kr}^{2}\theta_{2}} - {\left( {u_{f\; 2} + u_{e\; 2}} \right){br}^{2}{\overset{.}{\theta}}_{2}} + {\left( {u_{f\; 3} - u_{e\; 3}} \right)r} - {\left( {u_{f\; 3} + u_{e\; 3}} \right){{kr}^{2}\left( {\theta_{1} + \theta_{2}} \right)}} - {\left( {u_{f\; 3} + u_{e\; 3}} \right){{br}^{2}\left( {{\overset{.}{\theta}}_{1} + {\overset{.}{\theta}}_{2}} \right)}}}} & (39) \end{matrix}$

2. Control Design

Simultaneous control of the angles and stiffness of the joints J1 and J2 is performed in the third embodiment, in the same way that simultaneous control of the angle and stiffness of the joints J1 and J2 was performed in the first and second embodiments. Note however, that the end effector E, which is the tip of the link 2 of the two-link manipulator 120B comes into direct contact with the outside world, so control of the stiffness of the end effector E is important. The stiffness of the end effector E is expressed by a stiffness ellipse such as illustrated in FIG. 14. This ellipse represents the distribution of stiffness in various directions, and indicates that the greater the distance between the end effector E and the ellipse is, the greater the stiffness is.

The control device 200B generates generated force command values u_(e1), U_(f1), u_(e2), u_(f2), u_(e3), and u_(f3) corresponding to the actuators e₁, f₁, e₂, f₂, e₃, and f₃. The control device 200B then outputs the generated force command values u_(e1), u_(f1), u_(e2), u_(f2), u_(e3), and u_(f3) to the drivers 301 through 306, thereby controlling the generated force of the actuators e₁, f₁, e₂, f₂, e₃, and f₃. The drivers 301 through 306 generate at the actuators e₁, f₁, e₂, f₂, e₃, and f₃ the generated force corresponding to the generated force command values u_(e1), U_(f1), u_(e2), u_(f2), u_(e3), and u_(f3).

FIG. 15 is a block diagram illustrating the configuration of the control device 200B. The control device 200B is configured as a computer, including a CPU 201 serving as a control unit (computing unit) ROM 202, RAM 203, an HDD 204, a recording disk drive 205, and various interfaces 207, through 210, in the same way as with the first embodiment described above.

The CPU 201 has connected thereto the ROM 202, RAM 203, HDD 204, recording disk drive 205, and various interfaces 207, through 210, via a bus 206. The CPU 201 executes various types of computation processing based on a program 221B recorded in the HDD 204.

The aforementioned drivers 301 through 306 are connected to the interface 210. The CPU 201 outputs the generated force command values u_(e1), u_(f1), u_(e2), u_(f2), u_(e3), and u_(f3) to the drivers 301 through 306 via the bus 206 and interface 210. Thus, the drivers 301 through 306 generate generated force at the actuators e₁, f₁, e₂, f₂, e₃, and f₃, corresponding to the generated force command values that have been input.

In the third embodiment, the robot device 100B includes a detecting unit 401 which is a first detecting unit, and a detecting unit 402 which is a second detecting unit, omitted from illustration in FIG. 13, and a touch sensor 403. The detecting unit 401 is disposed at the joint J1 in FIG. 9, and detects the joint angle θ₁ of the joint J1 (first joint angle). The detecting sensor 402 is disposed at the joint J2 in FIG. 13, and detects the joint angle θ₂ of the joint J2 (second joint angle). The touch sensor 403 is disposed on the link 101 or link 102, and detects whether or not an object has come into contact with the link 101 or link 102.

The detecting unit 401 is connected to the interface 207, so that a signal indicating the detected joint angle θ₁ is transmitted to the CPU 201 via the interface 207 and bus 206. The detecting unit 402 is connected to the interface 208, so that a signal indicating the detected joint angle θ₂ is transmitted to the CPU 201 via the interface 208 and bus 206. The touch sensor 403 is connected to the interface 209, so that a signal indicating whether or not there has been contact is transmitted to the CPU 201 via the interface 209 and bus 206.

FIG. 16 is a functional block line diagram for describing control operations of the CPU 201. A robot control method will be described with reference to FIG. 16. Note that in FIG. 12, the manipulator 120B is denoted by reference symbol P. The CPU (control unit) 201 of the control device 200B functions as each part illustrated in FIG. 16 by reading out the program 221B from the HDD 204 and executing the program 221B.

That is to say, the CPU 201 functions as a target joint angle generating unit 501, a joint torque computing unit 502, a summing unit 503, restricting units 505 and 506, and generated force computing units 507, 508, and 509, based on the program 221B.

The target joint angle generating unit 501 executes target joint angle generating processing to generate a target joint angle r_(a1) for the joint J1 (first target joint angle) and a target joint angle r_(a2) for the joint J2 (second target joint angle), based on the target trajectory or the tip E of the link 102.

The joint torque computing unit 502 executes first joint torque computing processing to compute the joint torque for the joint J1 (first joint torque) T₁ necessary to bring the joint angle θ₁ to the target joint angle r_(a1) (first joint torque calculating step). The joint torque computing unit 502 also executes second joint torque computing processing to compute the joint torque for the joint J2 (second joint torque) T₂ necessary to bring the joint angle θ₂ to the target joint angle r_(a2) (second joint torque calculating step).

The joint torque computing unit 502 executes first feed-forward computing processing and first feedback computing processing as first joint torque computing processing, and second feed-forward computing processing and second feedback computing processing as second joint torque computing processing.

The joint torque computing unit 502 has a feed-forward computing unit 510 which performs the first feed-forward computing processing and second feed-forward computing processing. This feed-forward computing unit 510 also executes later-described first setting processing and second setting processing. The joint torque computing unit 502 also has a feedback computing unit 511 which performs the first feedback computing processing and a feedback computing unit 512 which performs the second feedback computing processing. The joint torque computing unit 502 further has an adding unit 513 which executes first adding processing, and an adding unit 514 which executes second adding processing.

The summing unit 503 calculates the first target stiffness and second target stiffness of the joints J1 and J2 respectively, from the target stiffness of the end effector E. The summing unit 503 obtains, based on each target stiffness, a sum value U₁ indicating the sum of generated forces u_(e1) and u_(f1) (first sum value), a sum value U₂ indicating the sum of generated forces u_(e2) and u_(f2) (second sum value), and a sum value U₃ indicating the sum of generated forces u_(e3) and u_(f3) (third sum value). That is to say, the summing unit 503 obtains the sum value U₁ as first summing processing (first summing step, obtains the sum value U₂ as second summing processing (second summing step), and obtains the sum value U₃ as third summing processing (third summing step).

The feed-forward computing unit 510 performs feed-forward computation using the sum values U₁, U₂, and U₃, and target joint angles r_(a1) and r_(a2), to obtain the feed-forward control torque T_(FFW) for the joints J1 and J2, as first and second feed-forward computing processing.

2.1 Feed-forward Control System

We will say that the difference of the generated force command values T_(n), and the sum is U_(n), in the same way as with the second embodiment described above, which yields the following.

(u _(fn) −u _(en))r=T′ _(FFWn) +T _(FBn) =T _(n) ,n=1,2,3  (41)

u _(fn) +u _(en) =U _(n) ,n=1,2,3  (40)

T′_(FFWn) and T_(FBn) are torques obtained from the feed-forward system and feedback system, respectively. In this section, a method for deriving feed-forward control input with T_(FBn)=0 will be described.

Defining Expressions (38) and (39) as

θ_(v)=[θ₁θ₂]^(T) ,T _(v) =[T ₁ +T ₃ T ₂ +T ₃]^(T)

to make matrix notation yields the following.

M _(m)(θ_(v)){umlaut over (θ)}_(v) +C _(m)(θ_(v),{dot over (θ)}_(v)){dot over (θ)}_(v) =−K _(v)(θ_(v)−θ_(cv))−C _(v){dot over (θ)}_(v) +T _(v)  (42)

Note that K_(v) and C_(v) are a stiffness matrix and attenuation matrix, respectively, according to muscle viscoelasticity, as follows.

$\begin{matrix} {{K_{v} = {\begin{bmatrix} {U_{1} + U_{3}} & U_{3} \\ U_{3} & {U_{2} + U_{3}} \end{bmatrix}{kr}^{2}}},{C_{v} = {\begin{bmatrix} {U_{1} + U_{3}} & U_{3} \\ U_{3} & {U_{2} + U_{3}} \end{bmatrix}{br}^{2}}}} & (43) \end{matrix}$

Further, θ_(cv) is a vector of neutral orientation angles θ_(c1) and θ_(c2) according to elasticity of a muscle when joint torques T₁ and T₂ are not acting, and is as follows.

θ_(cv)=[θ_(c1)θ_(c2)]^(T)  (44)

The bi-articular simultaneous driving actuators e₃ and f₃ can provide torque to the joint in the same way as with a mono-articular driving actuator, by providing difference in the generated force command values u_(e3) and u_(f3). However, multiple feedback control systems controlling a single link is redundant, making for a complicated design of the feedback control system. Accordingly, in the third embodiment, the bi-articular simultaneous driving actuators e₃ and f₃ are used to provide stiffness to the joints J1 and J2, and the difference T₃ between the generated forces u_(e3) and u_(f3) is as follows.

T ₃=0  (45)

Thus, it can be seen that T₁ and T₂ provide the joints with torque, and that U₁, U₂, and U₃ increase or reduce stiffness and viscosity as to the joints.

We will say that the target trajectory as to the joint angle θ_(n) (n=1, 2) is r_(an) (n=1, 2), and defined as follows.

r _(av) =[r _(a1) r _(a2)]^(T)  (46)

The feed-forward control torque T_(FFW)=[T_(FFW1) T_(FFW2)]^(T), for the joint angle to track the target trajectory, is obtained by

T _(FFW) =M _(m)(r _(av)){umlaut over (r)} _(av) +C _(m)(r _(av) ,{dot over (r)} _(av)){dot over (r)} _(av) +K _(v)(r _(av)−θ_(cv))+C _(v) {dot over (r)} _(av)  (47)

by inverse kinetics where the angular velocity and angular acceleration are {dot over (r)}_(av),{umlaut over (r)}_(av) respectively.

Next, the generated forces u_(en) and u_(fn) (n=1, 2) are derived in the same way as with the second embodiment described above, and in zones where the results are negative values, the terms in the Expression (41) for joint stiffness where generated force takes a negative value are replaced with 0. The feed-forward control torque is obtained from Expression (47) again for the zones where the results are negative values, and made to replace the earlier results, thereby obtaining feed-forward control torque T′_(FFW).

That is to say, the feed-forward computing unit 510 computes the feed-forward control torque T_(FFWn) by inverse kinetics, and determines whether or not |T_(FFWn)|<U_(n)×r is satisfied. In the event of determining that this is not satisfied, the feed-forward computing unit 510 sets 0 to the viscoelasticity constant for the actuator where the generated force is a negative value, and computes the feed-forward control torque T′_(FFWn) by inverse kinetics again.

2.2 2-Degree-of-Freedom Control System

The feedback computing unit 511 obtains feedback control torque T_(FB1) for the joint J1 by feedback computing, as first feedback computing processing. The feedback computing unit 512 obtains feedback control torque T_(FB2) for the joint J1 by feedback computing, as second feedback computing processing.

The feedback computing unit 511 includes a difference computing unit 531, a gain adjusting unit 532, and a PID control unit 533. The feedback computing unit 512 includes a difference computing unit 534, a gain adjusting unit 535, and a PID control unit 536.

The difference computing unit 531 computes the difference between the joint angle θ₁ and the target joint angle r_(a1) (θ₁−r_(a1)). The gain adjusting unit 532 sets the gain to 0 in a case where contact is detected by the contact sensor 403, and sets the gain to 1 if not detected. The PID control unit 533 computes feedback control torque T_(FB1) to compensate the difference (θ₁−r_(a1)), based on the transfer function K_(PID1).

The difference computing unit 534 computes the difference between the joint angle θ₂ and the target joint angle r_(a2) (θ₂−r_(a2)). The gain adjusting unit 535 sets the gain to 0 in a case where contact is detected by the contact sensor 403, and sets the gain to 1 if not detected. The PID control unit 536 computes feedback control torque T_(FB2) to compensate the difference (θ₂−r_(a2)), based on a transfer function K_(PID2).

The adding unit 513 adds the feedback control torque T_(FB1) to the feed-forward control torque T′_(FFW1) so as to obtain the joint torque T₁, as first adding processing. The adding unit 514 adds the feedback control torque T_(FB2) to the feed-forward control torque T′_(FFW2) so as to obtain the joint torque T₂, as second adding processing.

In a case of non-antagonistic driving, the feed-forward computing unit 510 sets the first restricting coefficient h₁ to a value greater than 1, and in a case of antagonistic driving sets the first restricting coefficient h₁ to 1, as first setting processing (first setting step). In the same way, in a case of non-antagonistic driving, the feed-forward computing unit 510 sets a second restricting coefficient h₂ to a value greater than 1, and in a case of antagonistic driving sets the second restricting coefficient h₂ to 1, as second setting processing (second setting step).

The restricting unit 505 has as the first restricting condition |T₁|<U₁×r×h₁, and restricts the joint torque T₁ to a range so as to satisfy the first restricting condition (first restricting step). The restricting unit 506 has as the second restricting condition |T₂|<U₂×r×h₂, and restricts the joint torque T₂ to a range so as to satisfy the second restricting condition (second restricting step).

That is to say, the control input T_(n) (n=1, 2) is restricted as follows, in the same way as with the second embodiment.

|T _(n) |<U _(n) ru _(n) ,n=1,2  (48)

Note that h_(n) (n=1, 2) is a parameter representing the degree of antagonism as to the n'th link, and is automatically generated by setting h>>1 in a zone where the conditions of antagonistic driving are not satisfied, in the same way as with the second embodiment described above. The generated forces u_(fn), u_(en) (n=1, 2) are as follows.

$\begin{matrix} {{u_{fn} = \frac{U_{n} + {T_{n}/r}}{2}},{u_{en} = \frac{U_{n} - {T_{n}/r}}{2}}} & (49) \end{matrix}$

Also, T₃=0 has been set, meaning that the difference of the generated forces u_(f3), u_(e3) as to the actuators e₃ and f₃ is set to 0, the generated forces u_(f3), u_(e3) are as follows.

$\begin{matrix} {u_{f\; 3} = {u_{e\; 3} = \frac{U_{3}}{2}}} & (50) \end{matrix}$

That is to say, the generated force computing unit 507 computes the generated force of the actuators e₁ and f₁ based on the joint torque T₁ restricted by the restricting unit 505, as first generated force computing processing (first generated force computing step). The generated force computing unit 508 computes the generated force of the actuators e₂ and f₂ based on the joint torque T₂ restricted by the restricting unit 506, as second generated force computing processing (second generated force computing step). The generated force computing unit 509 computes the generated force of the actuators e₃ and f₃ based on Expression (50), since torque T₃=0, as third generated force computing processing (third generated force computing step).

2.3 End Effector Stiffness Control

The one-link manipulator 120 according to the first embodiment above was described as the stiffness of the joint J1 and the stiffness of the end effector being the same. The stiffness of the end effector E of the “three-pair six-muscle model” two-link manipulator 120B is obtained by controlling the generated force sums U₁, U₂, and U₃. It is known that by controlling the generated force sums U₁, U₂, and U₃ so that

U ₁ =U ₂ =U ₃  (51)

the long axis of the stiffness ellipse is aligned in a direction connecting the joint J1 and the end effector E.

In Japanese Patent Laid-Open No. 2012-86354, the sum of generated force U₁, U₂, U₃, where the long and short axes of the stiffness ellipse of the end effector E are parallel to the x and y axes.

2.4 Trajectory Design

In the third embodiment, the end effector E drives the target trajectory in parallel to the y axis. Further, the third embodiment uses a trajectory having an acceleration zone, a constant velocity zone, and a deceleration zone, in the same way as with the first embodiment. The target trajectories r_(a1) and r_(a2) as to the joint angles are obtained by the target joint angle generating unit 501 from the end effector trajectory by inverse kinematics.

Next, the target stiffness is set so as to satisfy Expression (51), with the long axis of the stiffness ellipse aligned in a direction connecting the joint J1 and the end effector E at the target position of the end effector E. Also, settings are made such that stiffness is high in the acceleration zone and stiffness is low in the constant velocity zone. We will say that the sum of generated force of the mono-articular actuator in the acceleration and deceleration zones is U_(nmax), U_(nmax) (n=1, 2, 3), and the sum of generated force of the mono-articular actuator in the constant velocity zone is U_(nmin), U_(nmin) (n=1, 2, 3).

In the third embodiment, trajectory having an acceleration zone, a constant velocity zone, and a deceleration zone has been described, but a trajectory not having a constant velocity zone, such as a minimum jerk trajectory for example, may be used. Further, the target stiffness may be constant in a case where efficiency of driving is not taken into consideration.

3. Simulation

Simulation was performed using the control system described above. The physical parameters of the link 101 and link 102 are the same. The length of the links 101 and 102 was 0.2 m, the inertia moment of the links 101 and 102 was set to I₁=I₂=1.3×10⁻³ kgm², the moment arm radius to 0.05 m, and the elastic constant and viscosity constant to k=12 and b=0.003, respectively. The target trajectory was set such that constant velocity zone starting time t_(a)=0.2747 seconds, constant velocity zone ending time t_(b)=0.4746 seconds, and positioning ending time t_(fin)=0.75 seconds. Also, neutral orientation angles θ_(c1) and θ_(c2) according to elasticity when joint torques T₁ and T₂ are not acting were set to joint angles at an intermediate point on the end effector trajectory, such that θ_(c1)=29.7 degrees and θ_(c2)=120.7 degrees.

FIG. 17 illustrates the parameter h₁ for adjusting the degree of antagonism for the link 101 at this time. In the same way as with the second embodiment described above, the parameter h₁ generated at h₁=10 during non-antagonistic driving is indicated by a broken line, and the parameter h₁ using the zero phase low-pass filter is indicated by a solid line. On the other hand, h₂=1 is set for all zones where the conditions for antagonistic driving are constantly satisfied for the link 102. The sums U₁, U₂, and U₃, of generated force of the actuators, are controlled so that the stiffness ellipse of the end effector E is aligned in a direction connecting the joint J1 and the end effector E.

In the third embodiment, the inertia moments are set to I₁ and I₂ for generating feedback control torque, in order to verify identified error of the 2-degree-of-freedom system model, in the same way as with the second embodiment described above. In the simulation, the inertia moments of the links 101 and 102 were set to I₁′=1.1×I₁, I₂′=1.1×I₂.

FIGS. 18A and 18B illustrate the joint angles θ₁ and θ₂ of the links 101 and 102 by solid lines, and target trajectories r_(a1) and r_(a2) by broken lines, respectively. FIGS. 19A through 19C illustrate the response of generated force command values u_(f1), U_(f2), and u_(f3), by solid lines, and the response of generated force command values u_(e1), U_(e2), and u_(e3), by broken lines. Further, FIGS. 20A through 20C illustrate the difference of the generated force command values u_(en) and u_(fn) (n=1, 2, 3) by a solid line, the sum by a broken line, and the response of T_(n)/r (n=1, 2) by a single-dot broken line. FIG. 21A illustrates T_(FFW1) and T_(FB1), and FIG. 21B illustrates T_(FFW2) and T_(FB2), by solid lines and broken lines, respectively.

It can be seen from FIGS. 18A and 18B that the joint angles θ₁ and θ₂ illustrated by solid lines overlap the trajectories illustrated by broken lines, meaning that the links 101 and 102 are following the target trajectory. This is because the feedback control torque compensates for the model error as indicated by the broken lines in FIGS. 21A and 21B. According to the response of the link 101 illustrated in FIG. 19A, the generated forces u_(e1) and u_(f1) are the control input T₁ of the 2-degree-of-freedom control system distributed according to the conditions given in Expressions (48) and (49). According to FIG. 17, setting h>>1 in the acceleration zone so as to perform non-antagonistic driving causes the folding side to generate contractile force and the unfolding side to generate pushing force in the acceleration zone, and the folding side to generate pushing force and the unfolding side to generate contractile force in the deceleration zone. In zones where h=1, antagonistic driving is performed where both unfolding side and folding side artificial muscles generate positive force. Also, according to FIG. 19B, the link 102 is constantly set to h₂=1, so it can be seen that the generated forces u_(e2) and u_(f2) are constantly generating contractile force. According to FIG. 19C, the generated forces u_(e3) and u_(f3) are such that U₃/2 holds.

In FIG. 20A, u_(f1)−u_(e1) indicated by the solid line overlays the T₁/r indicated by the single-dot dashed line, satisfying the conditions of Expression (40). Also, u_(f1)+u_(e1)=U₁ indicated by the broken line does not satisfy the target value of stiffness due to non-antagonistic driving in the acceleration zone, but is U_(1max) during antagonistic driving in a stable state. In the same way, in FIG. 20B, u_(f2)−u_(e2) indicated by the solid line overlays the T₂/r indicated by the single-dot dashed line, satisfying the conditions of Expression (40). Also, u_(f2)+u_(e2)=U₂ indicated by the broken line satisfies the target value of stiffness due to constant antagonistic driving. Further, in FIG. 20C, u_(f3)−u_(e3) indicated by the solid line is 0, thus satisfying the conditions of Expression (45). It can also be seen that u_(f3)+u_(e3)=U₃ indicated by the broken line matches the target value.

Thus, it can be seen that the stiffness ellipse of the end effector E is controlled in a direction connecting the joint J1 and the end effector E, since the stiffness of each antagonistic pair is controlled to the positioning target angle. According to the 2-degree-of-freedom control system according to the third embodiment, seamless transition is made between antagonistic driving and non-antagonistic driving, and it can be seen that stiffness of the end effector E can be controlled by elasticity of the “three-pair six-muscle model” while realizing tracking of the target trajectory.

Note that the present invention is not restricted to the above-described embodiments, and that various modifications may be made by one with ordinary skill in the art without departing from the technical idea of the present invention.

The processing operations of the above embodiments are specifically executed by the CPU 201 serving as the control unit of the control devices 200, 200A, and 200B. Accordingly, a recording medium in which is recorded a program for realizing the above-described functions may be supplied to a control device, and the computer (CPU or MPU) of a the control device reading out and executing the program stored in the recording medium, so as to achieve the same results. In this case, the program itself read out from the recording medium realizes the functions of the embodiments described above, and the program itself and the recording medium recording the program make up the present invention.

Also, a case has been described in the above embodiments where the computer-readable recording medium is the HDD 204 and the programs 221, 221A, and 221B are stored in the HDD 204, but the present invention is not restricted to this arrangement. The programs may be recorded in any recording medium as long as a computer-readable recording medium. Examples of recording mediums for supplying the program include the ROM 202 and recording disc 222 illustrated in FIGS. 3 and 15, an external storage device not illustrated, and so forth. Specific examples which may be used as a recording medium include a flexible disk, hard disk, optical disc, magneto-optical disc, CD-ROM, CD-R, magnetic tape, rewritable non-volatile memory (e.g., USB memory), ROM, or the like.

Also, a the programs according to the above-described embodiments may be downloaded over a network and executed by a computer.

The present invention is not restricted to a computer executing program code which has been read out so as to realize the functions of the above-described embodiments. Also encompassed is a case where an operating system (OS) or the like running on the computer performs part or all of the actual processing based on instructions of the program code, and the functions of the embodiments described above are realized by that processing.

Further, program code read out from a recording medium may be written to a function extension board inserted into the computer or memory in a function extension unit connected to the computer. Also encompassed is a case where a CPU or the like provided to the function extension board or function extension unit performs part or all of the actual processing based on instructions of the program code, and the functions of the embodiments described above are realized by that processing.

The above embodiments have been described with regard to a case where the computer executes by programs recorded in the recording medium such as a HDD or the like, thereby carrying out the functions illustrated in FIGS. 4, 8, and 16, but the present invention is not restricted to this arrangement. Part or all of the functions of the control unit illustrated in FIGS. 4, 8, and 16 may be configured as a large-scale integration (LSI) such as an application specific integrated circuit (ASIC) or field-programmable gate array (FPGA).

While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions. 

What is claimed is:
 1. A robot device comprising: a manipulator having: a first link linked to a base by a first bendable portion; and a pair of first actuators, each of the first actuators situated on respective sides of the first link so as to cause the first bendable portion to bend; and a control unit configured to drive the first pair of actuators in an antagonistic driving mode in which both of the first actuators generate tensile forces and in a non-antagonistic driving mode in which one of the first actuators generates a tensile force and the other one of the first actuators generates a pushing force, wherein the control unit switches from one of the non-antagonistic driving mode and the antagonistic driving mode to the other in a seamless manner.
 2. The robot device according to claim 1, wherein the first bendable portion includes a rotatable link.
 3. The robot device according to claim 1, wherein each of the first pair of actuators includes a parallel type variable stiffness actuator.
 4. The robot device according to claim 1, wherein the manipulator has: a second link linked to the first link by a second bendable portion; and a pair of second actuators, each of the second actuators situated on respective sides of the second link so as to cause the second bendable portion to bend, wherein the control unit is configured to drive the second pair of actuators in an antagonistic driving mode in which both of the second actuators generate tensile forces and in a non-antagonistic driving mode in which one of the second actuators generates a tensile force and the other one of the second actuators generates a pushing force.
 5. The robot device according to claim 4, wherein the second bendable portion includes a rotatable link.
 6. The robot device according to claim 4, wherein each of the second pair of actuators includes a parallel type variable stiffness actuator. 